# # 安装依赖包（需提前执行）
# # pip install pycrypto          # 加密算法依赖（注意：pycrypto已停止维护，建议使用pycryptodome）
# # pip install alipay-sdk-python  # 支付宝SDK（注意：新版为python-alipay-sdk）
#
# # 沙箱环境测试账号（仅用于开发测试）
# # 买家账号：ltyavg2644@sandbox.com
# # 登录和支付密码：111111
#
# import logging
# from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
# from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
# from alipay.aop.api.domain.AlipayTradePagePayModel import AlipayTradePagePayModel
# from alipay.aop.api.request.AlipayTradePagePayRequest import AlipayTradePagePayRequest
#
# # 配置日志记录
# logging.basicConfig(
#     level=logging.INFO,            # 日志级别（INFO及以上级别会被记录）
#     format='%(asctime)s %(levelname)s %(message)s',  # 日志格式
#     filemode='a',                  # 写入模式（追加到文件）
# )
# logger = logging.getLogger('')    # 获取日志记录器
#
# # 支付宝公钥（用于验证支付回调签名，需从支付宝开放平台获取）
# alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
# MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhrSVTm/xYLAQl8lJf04G4ac1if/FOS1clKoegNhhLvLN+egPyH+ST+b9bm61tD+ety8LnYEjbtsh17fTedMcTHOIL92edFI3jrGSo52fueeuyWGwzqzzGKnmkN99IgkoH6Bn2oXdtoXCJ3lhFNV5PDuC4w4qLaDfqZlzr16OQ0DSK9ASEC286szDkx/Luauc6hLjay66Ct4LjNjWpFnJ3GmVwZUMZIiqAJ/5MQY+FDqpbRaho/AnDB13LbRll0B4K2EWxOuByyTFrbCYBq6rrboDQyiRwOCFd0bFaCa6XOB0KymKBJdRlL/u3Yewe8CquAveGKbjvOUuf3s9dLDe/QIDAQAB
# -----END PUBLIC KEY-----"""
#
# # 应用私钥（用于生成支付签名，需通过密钥工具生成并严格保密）
# app_private_key_string = """-----BEGIN RSA PRIVATE KEY-----
# MIIEpAIBAAKCAQEAj188kRuiSaxo7RtTwHOamNpgb5wfOt+gAQ5h87hkEllyQWrGeSbAE/3ViETJswd+T4skuT4nSxAJgET4t2GqyOjyk16ssxCAxakAF5L8dMqoUSkRwGbHUdAr/84AUGetTe9AVGBtuP3wB68ZXYFbxaKSV4NYU5Zn6YIeFPOloldmE3G9d7OWStTg2dM6dLrG9G6PDoWaniUnCi8qNbID3JouQnS/5iL4fd39Jxjdpsldf3pfZi8Mwo1gxqphONwnNekW5b7eNFsQBV+2Um4AMwRM3bWaDE/jBhCkCLAFVSJuFHFriTNjZW5onxXbkpSkwubnmwpDaYq1op8cBux3ywIDAQABAoIBAQCAxGuUdHpMqyHOGyYcinfGYxQMCe9upByD9lP5XpnadSWOJYU+mJQZIHjhG88AEXHbpUAFdBI8c5nk741mvrxyF+6Od5Cqft75KDFh+uztRHrp8fX0lRrdmxd5d56GmKdpgMGJRtYlOUWU0Sn59k3jcoD3QotY/5QygF/eN3qDE5WQzvTLxWTI3Nl9YRfYL+G7e/6wQmv5317wzKa88Z8CTVccTH0IeyW+NBcM8czSijPNlwDOty50s3orgoGKP+UGmlcsEq4OQtTH6dWwxi/nU98DPcMwqhMhUl4fw0WVVvmWL7F3av8i/hXUDu/D3UkPR1E5xtfl3h0A7mVum5QZAoGBAO77bB+dwKKC9144GUs7yr8LszfbI9sTTz0Z8YFvQI/1qJJl33GbQJP3KOKUT8+eFDv+0E55eragdPnOJorXhyl8awc9F1wFS+U5QbeXoImPb3Kxga+8MsMgEMPrAoVUBbNRk6UX07Pb+RJ5qcECNlLYxWUdQBImA4L/awlwJKKvAoGBAJmU3mAPBrVZy+ujd8KM3as2Xv89pCR8lgUlf7r90x+j9tFCOxacBdVlWGCLK6ciVUW5UFpSzXqGEScSaoL6/iPg0ieNOo4wHdmZLAXlAyxokDo/JQjhvx8KN71HLSX9cp9vLV4ZmrPLfeIumsI7YUKozKrIP5IjyHVjqNAkNXOlAoGAWgdrfymdtVsjN2Jo3PfEdF5DAMrUYiaPFlScr4cqylDgVW59U74KAPP+egUnX+6MbuGatcV73irqhmUMDggNyiot48c28pqoMc11HWXIu6nGcW2/jmWWtf1xc20oQPQbRad4uJwWS86VsUkWEzjzIBi7nFD9nxilAAea2i5eDs8CgYBdYPVgRGKYyxNAn3CGeq2glvtlh24QvStdz7H82K2QNFoyW2mf0pd9axQ0BwowoaBlN0pS0Lucfn1ZW0olf0QcPmqon6b1ou3TSt1IbDjkvGLM922mG9PfpI/FZsxdp98Ubz2PVFQKc3SDnEB+TipRpF5kjEKSsW0FauXOP+W7/QKBgQCm9PDF4jB1aHFxfAoo1lHs3Z68o+M/+yBhHUobdM1eD3BzqKkTfzF0UvwyS7Cv2q3GRFAytf904nys4yusotEWH7uNZ3GnGDatttLbLGgk5XRjzetbY1oa6zHIugUOUqvHt2rD9xbV7vUZElY84C9INxIc3TbRxe2a4/RuJYF8fw==
# -----END RSA PRIVATE KEY-----"""
#
# # 打印私钥（仅用于调试，生产环境需移除）
# print(app_private_key_string)
#
# # 配置支付宝客户端
# alipay_client_config = AlipayClientConfig()
# alipay_client_config.server_url = 'https://openapi-sandbox.dl.alipaydev.com/gateway.do'  # 沙箱环境网关
# alipay_client_config.app_id = '9021000149697375'  # 支付宝应用ID（沙箱环境示例值）
# alipay_client_config.app_private_key = app_private_key_string  # 应用私钥
# alipay_client_config.alipay_public_key = alipay_public_key_string  # 支付宝公钥
#
# # 初始化支付宝客户端（传入配置和日志器）
# client = DefaultAlipayClient(alipay_client_config=alipay_client_config, logger=logger)
#
# def get_pay(out_trade_no, total_amount, return_url):
#     """
#     生成支付宝PC端页面支付链接
#     :param out_trade_no: 商户订单号（需保证全局唯一，建议格式：用户ID_时间戳_随机数）
#     :param total_amount: 支付金额（单位：元，需为字符串类型，如"99.90"）
#     :param return_url: 支付成功后的回调地址（需为公网可访问的URL）
#     :return: 支付宝支付页面的重定向URL
#     """
#     print(2)
#     # 实例化支付模型（封装业务参数）
#     model = AlipayTradePagePayModel()
#     model.out_trade_no = out_trade_no          # 商户订单号
#     model.total_amount = str(total_amount)     # 支付金额（转换为字符串避免精度问题）
#     model.subject = "测试"                     # 订单标题（显示在支付宝支付页面）
#     model.body = "支付宝测试"                   # 订单描述（可选）
#     model.product_code = "FAST_INSTANT_TRADE_PAY"  # 产品码（固定值，PC页面支付）
#
#     # 实例化支付请求（传入业务模型）
#     request = AlipayTradePagePayRequest(biz_model=model)
#
#     # 设置回调地址（同步通知和异步通知）
#     # 注意：回调地址需包含订单号参数，用于后续订单状态匹配
#     request.notify_url = return_url + '?t=' + out_trade_no  # 异步通知地址（支付宝主动调用）
#     request.return_url = return_url + '?t=' + out_trade_no   # 同步回调地址（用户支付成功后跳转）
#
#     # 执行支付请求（返回重定向URL）
#     # http_method="GET" 表示生成GET请求的URL（默认）
#     response = client.page_execute(request, http_method="GET")
#     return response